const { verify } = require('../util/jwt')
const {jwtSecret}= require('../config/config.default')
const { User } = require('../model')

module.exports = async (req, res, next) => {
    // 从请求头获取token数据
    let token = req.headers.authorization
    token = token 
    ? token.split('Bearer  ')[1]
    : null
   
    if (!token) {
        return res.status(401).end()
    }
    // 验证token 是否有效
    try {

        
       const decodedToken =  await verify(token,jwtSecret)
    //    console.log(decodedToken)
       req.user = await User.findById(decodedToken.userId)
       next()
    } catch (error) {
        return res.status(401).end()
    }

    // 无效 --> 响应 401状态码
    // 有效 -->把用户信息读取出来挂载到req 请求对象上继续往后执行 

}